@@ -275,11 +275,10 @@ WECHAT = {
|
||
| 275 | 275 |
|
| 276 | 276 |
WECHAT_REDIRECT_URI = 'http://api.pai.ai/to_redirect' |
| 277 | 277 |
|
| 278 |
-WECHAT_GET_CODE_BASE = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_base&state=%s#wechat_redirect' |
|
| 279 |
-WECHAT_GET_CODE_USERINFO = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_userinfo&state=%s#wechat_redirect' |
|
| 280 |
-WECHAT_GET_OAUTH2_ACCESS_TOKEN = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code' |
|
| 278 |
+WECHAT_OAUTH2_AUTHORIZE = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid={appid}&redirect_uri={redirect_uri}&response_type=code&scope={scope}&state={state}#wechat_redirect'
|
|
| 279 |
+WECHAT_OAUTH2_ACCESS_TOKEN = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid={appid}&secret={secret}&code={code}&grant_type=authorization_code'
|
|
| 281 | 280 |
|
| 282 |
-WECHAT_GET_USERINFO = 'https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s' |
|
| 281 |
+WECHAT_OAUTH2_USERINFO = 'https://api.weixin.qq.com/sns/userinfo?access_token={access_token}&openid={openid}'
|
|
| 283 | 282 |
|
| 284 | 283 |
# 微信支付设置 |
| 285 | 284 |
WXPAY_NOTIFY_SUCCESS = '<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>' |
@@ -19,7 +19,6 @@ ipython==4.0.0 |
||
| 19 | 19 |
jsonfield==1.0.3 |
| 20 | 20 |
kkconst==1.1.2 |
| 21 | 21 |
pep8==1.6.2 |
| 22 |
-pysnippets==1.0.2 |
|
| 23 | 22 |
pytz==2015.7 |
| 24 | 23 |
records==0.4.3 |
| 25 | 24 |
redis==2.10.5 |
@@ -5,12 +5,10 @@ import urllib |
||
| 5 | 5 |
|
| 6 | 6 |
import requests |
| 7 | 7 |
import shortuuid |
| 8 |
-from CodeConvert import CodeConvert as cc |
|
| 9 | 8 |
from django.conf import settings |
| 10 | 9 |
from django.shortcuts import redirect |
| 11 | 10 |
from furl import furl |
| 12 | 11 |
from json_response import auto_response |
| 13 |
-from pysnippets import dictsnippets as dsnippets |
|
| 14 | 12 |
from wechatpy import WeChatClient |
| 15 | 13 |
|
| 16 | 14 |
|
@@ -25,9 +23,12 @@ def get_openid(request): |
||
| 25 | 23 |
default_url = request.GET.get('default_url', '')
|
| 26 | 24 |
|
| 27 | 25 |
if request.weixin: |
| 28 |
- authorize_url = settings.WECHAT_GET_CODE_USERINFO if scope == 'snsapi_userinfo' else settings.WECHAT_GET_CODE_BASE |
|
| 29 |
- get_code_url = authorize_url % (JSAPI['appID'], urllib.quote_plus(settings.WECHAT_REDIRECT_URI), urllib.quote_plus(redirect_url)) |
|
| 30 |
- return redirect(get_code_url) |
|
| 26 |
+ return redirect(settings.WECHAT_OAUTH2_AUTHORIZE.format( |
|
| 27 |
+ appid=JSAPI['appID'], |
|
| 28 |
+ redirect_uri=urllib.quote_plus(settings.WECHAT_REDIRECT_URI), |
|
| 29 |
+ scope=scope, |
|
| 30 |
+ state=urllib.quote_plus(redirect_url) |
|
| 31 |
+ )) |
|
| 31 | 32 |
|
| 32 | 33 |
return redirect(default_url if default_url else redirect_url) |
| 33 | 34 |
|
@@ -36,14 +37,18 @@ def to_redirect(request): |
||
| 36 | 37 |
code = request.GET.get('code', '')
|
| 37 | 38 |
state = request.GET.get('state', '')
|
| 38 | 39 |
|
| 39 |
- access_info = requests.get(settings.WECHAT_GET_OAUTH2_ACCESS_TOKEN % (JSAPI['appID'], JSAPI['appsecret'], code), verify=False).json() |
|
| 40 |
+ access_info = requests.get(settings.WECHAT_OAUTH2_ACCESS_TOKEN.format( |
|
| 41 |
+ appid=JSAPI['appID'], |
|
| 42 |
+ secret=JSAPI['appsecret'], |
|
| 43 |
+ code=code |
|
| 44 |
+ ), verify=False).json() |
|
| 40 | 45 |
unionid, openid, access_token = access_info.get('unionid', ''), access_info.get('openid', ''), access_info.get('access_token', '')
|
| 41 | 46 |
|
| 42 |
- res = requests.get(settings.WECHAT_GET_USERINFO % (access_token, openid), verify=False) |
|
| 47 |
+ res = requests.get(settings.WECHAT_OAUTH2_USERINFO.format(access_token=access_token, openid=openid), verify=False) |
|
| 43 | 48 |
res.encoding = 'utf-8' |
| 44 | 49 |
userinfo = res.json() |
| 45 | 50 |
|
| 46 |
- return redirect(furl(state).add(cc.Convert2Utf8(dsnippets.filter(userinfo, ['unionid', 'openid', 'nickname', 'headimgurl']))).url) |
|
| 51 |
+ return redirect(furl(state).add(userinfo).url) |
|
| 47 | 52 |
|
| 48 | 53 |
|
| 49 | 54 |
@auto_response |